
"""
需求：
参考项目的登录功能（登录时需要输入用户名、密码、验证码），至少设计3条测试用例
要求1：定义变量保存测试数据（包括不同测试数据对应的测试结果）
要求2：至少写出3种以上不同的数据格式
要求3：遍历测试数据并打印到控制台，数据格式“用户名：xxx 密码：xxx 验证码：xxx 期望结果：xxx”
"""
# 分析：①登录成功②用户名或密码错误③验证码错误
# 测试数据：
# 1.请求：用户名、密码、验证码
# 2.响应：预期结果
# 组装数据：每一种结果对应的场景放到一个序列里面
# 案例：记录登录功能测试用例数据
# 思考：测试用例？ 登录成功、用户名或密码错误、验证码错误
# 存放的数据：用户名、密码、验证码、预期结果

# 定义登录测试数据：列表嵌套列表（外层是列表，内层元素也是列表)
login_data1 = [["13800000001", "123456", "8888", "登录成功"],
               ["13800000001", "1234", "8888", "密码错误"],
               ["13800000001", "123456", "0000", "验证码错误"]]
# 定义登录测试数据：元组嵌套元组（外层是元组，内层元素也是元组)
login_data2 = (("13800000001", "123456", "8888", "登录成功"),
                ("13800000001", "1234", "8888", "密码错误"),
                ("13800000001", "123456", "0000", "验证码错误"))
# 定义登录测试数据：列表嵌套元组（外层是列表，内层元素是元组)
login_data3 = [("13800000001", "123456", "8888", "登录成功"),
                ("13800000001", "1234", "8888", "密码错误"),
                ("13800000001", "123456", "0000", "验证码错误")]
# 定义登录测试数据：列表嵌套字典（外层是列表，内层元素是字典)
login_data4 = [{"username": "13800000001", "password": "123456", "code": "8888", "result": "登录成功"},
               {"username": "13800000001", "password": "666666", "code": "8888", "result": "密码错误"},
               {"username": "13800000001", "password": "123456", "code": "0000", "result": "验证码错误"}]
# 遍历login_data3（列表嵌套元组）：逐个打印测试数据,for循环语法：for 变量 in 可迭代对象：循环体（缩进）
# j依次代表login_data3中的每个子元组（如第1次循环j是第1组元组）
for j in login_data3:
    # f-string格式化：{变量}会被替换为实际值，拼接成字符串打印
    print(f"用户名：{j[0]} 密码：{j[1]} 验证码：{j[2]} 期望结果：{j[3]}")
# 遍历login_data4（列表嵌套字典）：逐个打印测试数据,i依次代表login_data4中的每个子字典（如第1次循环i是第1组字典
for i in login_data4:
# 字典通过"键名"访问值，这里用get()方法：i.get(键名)
 print(f"用户名：{i.get('username')} 密码：{i.get('password')} 验证码：{i.get('code')} 期望结果：{i.get('result')}")
